# 创建时间：2025/5/1 星期四 13:32
# 创建人：李德才

"""
在Python中，字符串的创建和驻留机制是一种优化机制，用于减少内存占用和提高性能。
当你创建一个字符串时，Python会首先检查字符串是否已经存在于字符串驻留池中。
如果存在，Python会直接返回该字符串的引用，而不是创建一个新的字符串对象。
这种机制称为字符串的驻留机制。
*** 注意：字符串是不可变的，如果想要修改字符串，python会创建一个新的字符串对象。***
"""

"""符合标识符的字符串会被驻留机制驻留，不符合标识符的字符串不会被驻留机制驻留，标识符的定义：字母、数字、下划线，"""

a = "hello world"
b = "hello world"
d = "hello" + " world"

print(id(a))
print(id(b))
print(id(d))
print(a is b)

"""这段代码在Python 工具中运行，结果为：False,但是在pycharm中运行，结果为：True, 这是因为pycharm在运行时会自动进行优化，"""
e = "abc%"
f = "abc%"
print("e的id", id(e))
print("f的id", id(f))
print(e is f)

g = "abc"
h = "ab" + "c"
i = "".join(["ab", "c"])
print(g is h)  # True   # g 和 h 都是在编译期间创建的，是驻留机制创建的
print(g is i)  # False  # i 是在程勋运行期间创建的，不是驻留机制创建的
